using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Data.SqlClient;
using System.Data;
using TestImport.Model;

namespace TestImport.View.Bestellingen
{
    class BestellingEenLeerling
    {
        private int vleerlingID;
        private int vboeklijstID;
        private DateTime datum;

        public BestellingEenLeerling()
        {
        }

        public BestellingEenLeerling(int ID, int vboeklijstID, DateTime datum)
        {
            vleerlingID = ID;
            this.vboeklijstID = vboeklijstID;
            this.datum = datum;
        }

        public void verwerkBestelling(int boekID, int vboeklijstItemID, bool bestellen)
        {
            //boek bestellen
            if (bestellen)
            {
                if (!DBzoekLeerlingBoek(boekID))
                {
                    DBvoegBestellingToe(boekID, datum, vboeklijstItemID, (int)Bestelling.LLBoekStatus.BesteldLL);
                }

            }
        }

        
        public int wisBestellingenVoorLeerling()
        {
            int vStatus = (int)Bestelling.LLBoekStatus.BesteldLL;
            int aantal = 0;
            aantal = Database.Instance.GetDatabase.LeerlingBoek_DeleteByLeerlingID(vleerlingID, vStatus);
            return aantal;
        }

        public int wisBestellingenVoorLeerling(int vleerlingBoekID)
        {
            int vStatus = (int)Bestelling.LLBoekStatus.BesteldLL;
            int aantal = 0;
            aantal = Database.Instance.GetDatabase.LeerlingBoek_DeleteByLeerlingBoekID(vleerlingBoekID, vStatus);
            return aantal;
        }

        public int getStatusBestelling(int vleerlingBoekID)
        {
            int terug = -1;
            DataTable dt = Database.Instance.GetDatabase.LeerlingBoek_GetStatusBestelling(vleerlingBoekID);
            terug = Int32.Parse(dt.Columns["status"].ToString());
            return terug;
        }    


        public bool DBzoekLeerlingBoek(int vboekID)
        {
            bool terug = false;
            DataTable dt = Database.Instance.GetDatabase.LeerlingBoek_ZoekLeerlingBoek(vleerlingID, vboekID);
            terug = dt.Rows.Count > 0;
            return terug;
        }

        public bool DBzoekLeerlingBoekBis(int vleerlingBoekID)
        {
            bool terug = false;
            DataTable dt = Database.Instance.GetDatabase.LeerlingBoek_ZoekLeerlingBoekBis(vleerlingBoekID);
            terug = dt.Rows.Count > 0;
            return terug;
        }

        public bool DBvoegBestellingToe(int vboekID, DateTime vDatum,int vboeklijstItemID, int vStatus)
        {
            int aantal = 0;
            aantal = Database.Instance.GetDatabase.LeerlingBoek_Insert(vboekID, vleerlingID, vDatum, vboeklijstItemID, vStatus);
            return aantal==1;
        }

        public bool voegAfhalingToe(int vboekID, DateTime vDatum, int vStatus)
        {
            return false;
        }

        public string GetBesteldeBoeken()
        {
            string terug = "";
            DataTable dt = Database.Instance.GetDatabase.LeerlingBoek_GetBesteldeBoeken(vleerlingID);
            foreach(DataRow row in dt.Rows)
            {
                terug += row["categorieCode"].ToString().PadRight(8, '.') + row["titel"].ToString() + "(" + row["boeksoortCode"].ToString() + ")" + "\r\n";
            }
            return terug;
        }          

    }
}
